--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / backend / database / contacts.py
Displaying Raw • Download
meshchatx/src/backend/database/contacts.py 5d3d5114a54da393156444adf504d2bf6ff55258 (5d3d5114) Text, 2.41 KB
Tff7b72from T7ee787.T7ee787provider Tff7b72import Te6edf3DatabaseProvider
Tff7b72class T56d364ContactsDAOTb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3providerTb4b4b4: Te6edf3DatabaseProviderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffprovider Tff7b72= Te6edf3provider
Tff7b72def Td2a8ffadd_contactTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3remote_identity_hashTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
T8b949e"""
INSERT INTO contacts (name, remote_identity_hash)
VALUES (?, ?)
ON CONFLICT(remote_identity_hash) DO UPDATE SET
name = EXCLUDED.name,
updated_at = CURRENT_TIMESTAMP
"""Tb4b4b4,
Tb4b4b4(Te6edf3nameTb4b4b4, Te6edf3remote_identity_hashTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffget_contactsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3searchTff7b72=Tff7b72NoneTb4b4b4, Te6edf3limitTff7b72=T79c0ff100Tb4b4b4, Te6edf3offsetTff7b72=T79c0ff0Tb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3searchTb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchallTb4b4b4(
T8b949e"""
SELECT * FROM contacts
WHERE name LIKE ? OR remote_identity_hash LIKE ?
ORDER BY name ASC LIMIT ? OFFSET ?
"""Tb4b4b4,
Tb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ff%Tffd700{Te6edf3searchTffd700}Ta5d6ff%Ta5d6ff"Tb4b4b4, Ta5d6fffTa5d6ff"Ta5d6ff%Tffd700{Te6edf3searchTffd700}Ta5d6ff%Ta5d6ff"Tb4b4b4, Te6edf3limitTb4b4b4, Te6edf3offsetTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchallTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT * FROM contacts ORDER BY name ASC LIMIT ? OFFSET ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3limitTb4b4b4, Te6edf3offsetTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffget_contactTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3contact_idTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchoneTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT * FROM contacts WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3contact_idTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffupdate_contactTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3contact_idTb4b4b4, Te6edf3nameTff7b72=Tff7b72NoneTb4b4b4, Te6edf3remote_identity_hashTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3name Tff7b72and Te6edf3remote_identity_hashTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffUPDATE contacts SET name = ?, remote_identity_hash = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3nameTb4b4b4, Te6edf3remote_identity_hashTb4b4b4, Te6edf3contact_idTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72elif Te6edf3nameTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffUPDATE contacts SET name = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3nameTb4b4b4, Te6edf3contact_idTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72elif Te6edf3remote_identity_hashTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffUPDATE contacts SET remote_identity_hash = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3remote_identity_hashTb4b4b4, Te6edf3contact_idTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffdelete_contactTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3contact_idTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(Ta5d6ff"Ta5d6ffDELETE FROM contacts WHERE id = ?Ta5d6ff"Tb4b4b4, Tb4b4b4(Te6edf3contact_idTb4b4b4,Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8ffget_contact_by_identity_hashTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3remote_identity_hashTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchoneTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT * FROM contacts WHERE remote_identity_hash = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3remote_identity_hashTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────